5.04. Платформа .NET
Платформа .NET
Что в себя включает платформа?
★.NET (читать как "дотнет") – платформа для разработки, включающая в себя инструменты для создания, компиляции и выполнения приложений. Её эволюцию можно разделить на три ключевых этапа:
- .NET Framework – первая и исторически исходная реализация платформы, выпущена в 2002 году. Работала только в среде Windows.
- .NET Core – кроссплатформенная (Windows, Linux, macOS) и открытая версия, выпущенная в 2016 году, создалась как альтернатива .NET Framework для производительности и модульности.
- .NET 5+ (современный .NET) – в 2020 году Microsoft объединила .NET Framework и .NET Core в единую платформу .NET.
Отобразим сравнение в форме таблицы:
| Технология/характеристика | .NET Framework | .NET Core | .NET 5+ |
|---|---|---|---|
| Кроссплатформенность | Нет | Да | Да |
| Открытый исходный код | Нет | Да | Да |
| WinForms | Да | Нет (только Windows) | Да |
| WPF | Да | Нет (только Windows) | Да |
| ASP.NET (WebForms) | Да | Нет | Нет |
| ASP.NET Core | Нет | Да | Да |
| Entity Framework | Да | Нет | Нет |
| Entity Framework Core | Нет | Да | Да |
| WCF | Да | Нет | Через сторонние альтернативы |
| Docker | Нет | Да | Да |
Эти упомянутые технологии лучше упомянуть вкратце сразу, для понимания возможностей платформы.
Компоненты
★ Основные компоненты .NET
- dotnet – так называют саму платформу .NET, и так называется команда для работы с платформой, отвечающая за запуск и сборку;
- CLR (Common Language Runtime) – компонент, который выполняет код (с английского «run» - бежать). Этот компонент отвечает за управление памятью (сборку мусора), обеспечивает безопасность.
- CTS (Common Type System) – компонент, отвечающий за систему правил типов данных.
- CLS (Common Language System) – компонент, отвечающий за гарантию совместимости кода.
- Библиотеки. Это наборы готовых классов для работы с конкретными задачами - файлы, строки, сеть. Они бывают базовые (BCL, Base Class Library), которые уже «вшиты» в .NET, и бывают пользовательские.
- NuGet – магазин библиотек.

IL (Intermediate Language) – это независимый от процессора частично скомпилированный код. Код IL будет скомпилирован в родной машинный код с использованием текущих свойств среды компилятором Just-In-Time (JIT). JIT-компилятор переводит IL-код в код сборки и использует архитектуру процессора целевой машины для выполнения приложения .NET.
В .NET язык IL называется Common Intermediate Language (CIL), а на первых этапах .NET он назывался Microsoft Intermediate Language (MSIL).
CLI (Common Language Infrastructure, не путать с командной строкой Command Line Interface) – это открытая спецификация, разработанная компанией Microsoft. Это библиотека скомпилированного кода, используемая для развертывания, создания версий и обеспечения безопасности.
В .NET существует два типа CLI: сборки процессов (EXE) и сборки библиотек (DLL). Сборки CLI содержат код на языке CIL, и при компиляции языков программирования CLI исходный код транслируется в код CIL, а не в объектный код, специфичный для платформы или процессора.
★ Технологии для приложений
- WinForms – фреймворк для сборки простых Windows-приложений с кнопками/окнами.
- WPF (Windows Presentation Foundation) – современный фреймворк для красивых Windows-программ с анимациями и гибким дизайном.
- UWP (Universal Windows Platform) – фреймворк для приложений из магазина Windows (для Windows 10 и новее).
★ Веб-технологии
- ASP.NET WebForms – устаревший фреймворк для веб-приложений с drag-and-drop интерфейсом (можно сказать, это WinForms для браузера).
- ASP.NET WebAPI – фреймворк для создания REST-сервисов (про интеграции и REST мы поговорим позже).
- ASP.NET Core – современный кроссплатформенный фреймворк для веб-приложений. Сейчас, говоря ASP.NET, мы подразумеваем именно Core.
★ Работа с данными
- ADO.NET – низкоуровневый доступ к базам данных (SQL-запрос пишется вручную в виде строки).
- Entity Framework – удобная прослойка с готовыми классами для автоматических SQL-запросом без необходимости «прятать» SQL-запрос в строку.
- Entity Framework Core – переписанный и современный Entity Framework для .NET и .NET Core.
★ Связь между сервисами
- WCF (Windows Communication Foundation) – устаревший фреймворк для сложного обмена данными между программами.
- gRPC – (от RPC, remote procedure call), система удаленного вызова процедур для более быстрого обмена данными между сервисами.
- Работа с gRPC API
- gRPC — это фреймворк удаленных вызовов процедур, который использует HTTP/2 для передачи данных между приложениями. Он выделяется высокой производительностью благодаря бинарному формату Protocol Buffers.
Подробнее про .NET можно почитать у Microsoft на официальном сайте, там же есть и C#, и C++, и F#, и Visual Studio - https://learn.microsoft.com/ru-ru/dotnet/